<?php

namespace app\models\dao;

use Yii;

/**
 * This is the model class for table "{{%project}}".
 *
 * @property integer $id
 * @property integer $user_id
 * @property string $name
 * @property integer $level
 * @property integer $status
 * @property string $version
 * @property string $repo_url
 * @property string $repo_username
 * @property string $repo_password
 * @property string $repo_mode
 * @property string $repo_type
 * @property string $deploy_from
 * @property string $excludes
 * @property string $release_user
 * @property string $release_to
 * @property string $release_library
 * @property string $hosts
 * @property string $pre_deploy
 * @property string $post_deploy
 * @property string $pre_release
 * @property string $post_release
 * @property integer $post_release_delay
 * @property integer $audit
 * @property integer $ansible
 * @property integer $keep_version_num
 * @property integer $flag
 * @property string $created_time
 * @property string $updated_time
 */
class Project extends \app\common\PopToolActiveRecord
{
    /**
     * @inheritdoc
     */
    public static function tableName()
    {
        return '{{%project}}';
    }

    /**
     * @inheritdoc
     */
    public function rules()
    {
        return [
            [['user_id', 'level', 'deploy_from', 'release_user', 'release_to', 'release_library'], 'required'],
            [['user_id', 'level', 'status', 'post_release_delay', 'audit', 'ansible', 'keep_version_num', 'flag'], 'integer'],
            [['excludes', 'hosts', 'pre_deploy', 'post_deploy', 'pre_release', 'post_release'], 'string'],
            [['created_time', 'updated_time'], 'safe'],
            [['name', 'repo_password'], 'string', 'max' => 100],
            [['version'], 'string', 'max' => 32],
            [['repo_url', 'deploy_from', 'release_to', 'release_library'], 'string', 'max' => 200],
            [['repo_username', 'repo_mode', 'release_user'], 'string', 'max' => 50],
            [['repo_type'], 'string', 'max' => 10],
        ];
    }

    /**
     * @inheritdoc
     */
    public function attributeLabels()
    {
        return [
            'id' => 'ID',
            'user_id' => '添加项目的用户id',
            'name' => '项目名字',
            'level' => '项目环境1：测试，2：仿真，3：线上',
            'status' => '状态0：无效，1有效',
            'version' => '线上当前版本，用于快速回滚',
            'repo_url' => 'git地址',
            'repo_username' => '版本管理系统的用户名，一般为svn的用户名',
            'repo_password' => '版本管理系统的密码，一般为svn的密码',
            'repo_mode' => '上线方式：branch/tag',
            'repo_type' => '上线方式：git/svn',
            'deploy_from' => '宿主机存放clone出来的文件',
            'excludes' => '要排除的文件',
            'release_user' => '目标机器用户',
            'release_to' => '目标机器的目录，相当于nginx的root，可直接web访问',
            'release_library' => '目标机器版本发布库',
            'hosts' => '目标机器列表',
            'pre_deploy' => '部署前置任务',
            'post_deploy' => '同步之前任务',
            'pre_release' => '同步之前目标机器执行的任务',
            'post_release' => '同步之后目标机器执行的任务',
            'post_release_delay' => '每台目标机执行post_release任务间隔/延迟时间 单位:秒',
            'audit' => '是否需要审核任务0不需要，1需要',
            'ansible' => '是否启用Ansible 0关闭，1开启',
            'keep_version_num' => '线上版本保留数',
            'flag' => '数据状态：0、正常，1、作废',
            'created_time' => '创建时间',
            'updated_time' => '修改时间',
        ];
    }
}
